<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Example: 小型项目采用 NUP</title>
<meta name="uma.type" content="Example">
<meta name="uma.name" content="a_small_project_adopts_rup">
<meta name="uma.presentationName" content="小型项目采用 NUP">
<meta name="element_type" content="example">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="1.5898235987322268E-305"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Example: 小型项目采用 NUP</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/example.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">本示例描述了一个场景，该场景中一个小型项目已决定采用 NUP。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup/domains/environment_53C41220.html" guid="_5JJn0P_UEdmVCcs_BRqacA">环境</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/environment_88B1B954.html" guid="{659D51DD-DF1F-465E-9F3A-2FC6F9BC7C34}">环境</a>
</li>
<li>
<a href="./../../../rup/roles/rup_process_engineer_5954DBA2.html" guid="{ADDC62A7-8E36-4DCE-9E5C-211B0950EBB5}">流程工程师</a>
</li>
<li>
<a href="./../../../rup/capabilitypatterns/rup_process_engineer_581B5D0A.html" guid="_xWYKsdx7Ed27Ld6FEj33Ng">流程工程师</a>
</li>
<li>
<a href="./../../../rup/tasks/tailor_process_for_project_6CFD05E2.html" guid="{1BA9AAA0-DA89-4C14-B45A-CE28A8A10894}">为项目定制开发流程</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Main Description</th><td class="sectionTableCell"><h3 class="banner">
    <big>主题</big></h3>
<div align="left">
    <ul>
        <li>
            <a href="#Project Overview"><font color="#800080">项目概述</font></a>
        </li>
        <li>
            <a href="#roles"><font color="#800080">常规定制</font></a>
        </li>
        <li>
            <a href="#roles"><font color="#800080">角色和生命周期</font></a>
        </li>
        <li>
            <a href="#review"><font color="#800080">评审</font></a>
        </li>
    </ul>
</div>
<p>
关于如何为小型项目定制 NUP 的信息，请参阅<a class="elementLinkWithType" href="./../../../rup/guidances/concepts/tailoring_a_process_for_a_small_project_21481E2E.html" guid="2.721222001330515E-305">Concept: 为小型项目定制流程</a>。关于定制 NUP 的信息，一般请参阅<a class="elementLinkWithType" href="./../../../rup/guidances/concepts/tailoring_rup_F8F0EB23.html" guid="6.991505672198195E-305">Concept: 定制 NUP</a>
</p>
<h3>
    <a id="Project Overview" name="Project Overview">项目概述</a>
</h3>
<p>
以下场景描述了 ABC 公司一个项目，称 Project X。Project X 是由项目经理 Jill 和四个程序员 Angus、David、Susan 和 Philip 组成的团队。该项目的持续时间是四个月。&nbsp;
</p>
<p>
Jill 正在考虑使用 NUP 作为其项目软件开发流程的基础。她安装了 NUP，缺省情况下安装“典型 NUP”流程配置。她还回顾了与定制项目流程相关的经典 NUP 部分。</p>
<p>
她首先与团队一起协商，评估项目的流程需要。结论如下。</p>
<ul>
    <li>
配置管理的现有流程和工具运行良好，因此流程的这一方面可以保持不变。    </li>
    <li>
团队具有用例和组件架构方面的一定经验，但可使用这些领域的更多指导信息。    </li>
    <li>
项目会从迭代开发方法（作为一种快速降低关键项目风险的手段）中受益。    </li>
    <li>
项目干系人与开发团队有着非正式的良好工作关系，也不需要正式的合同或评审。在开发期间项目干系人具有持续的可见性。团队具有很高的技能和纪律性，在过去已显示能生产出高质量产品而不需太正式的流程。
    </li>
    <li>
项目的给定时限很短，将只对工具集作出较小的变更。    </li>
    <li>
将发起单独的并行活动来调查工具好处、重用机会，并为未来的项目进一步优化流程。    </li>
</ul>
<p>
然后，Jill 承担了定制适当流程以供团队遵循的任务。<br />
</p>
<h3>
    <a id="General Tailoring" name="General Tailoring">常规定制</a>
</h3>
<h4>
将特定于项目的资产封装入一个插件中
</h4>
<p>
现有的 NUP 流程相当接近项目的需要，但并不完全符合。Jill 通过创建特定于项目的插件来进一步优化流程，该插件包含了适用的特定于项目的资产。
</p>
<p>
Jill 特别启动了 <a class="elementLink" href="./../../../rup/tools/rup_rational_method_composer_84A966EC.html" guid="_hAfB8COzEdq41POk0CQYwA">Eclipse Process Framework</a>（EPF）并创建了包含以下内容的新方法插件：
</p>
<ul>
    <li>
关于项目中将要使用的工具的指南</li>
    <li>
从以前的类似项目中重用的指南，包括设计指南和配置与变更管理指南</li>
    <li>
关于评审和评估的指南。    </li>
</ul>
<p>
除了将该指导信息与适当的 NUP 方法元素关联之外，她还优化了现有的 NUP 进程视图以包括此指导信息。
</p>
<p>
她还将“Project X 流程简介”页面添加至“NUP 入门”视图，其中描述了已配置流程的基本理念。例如，她声称所包括的模板用于指导内容，但格式是可选的。她也指明了关键项目工作产品的当前版本将所在的位置。
</p>
<p>
关于如何使用 EPF 创建方法插件的信息，请参阅<a class="elementLinkWithType" href="./../../../rup/guidances/toolmentors/creating_method_plugin_rmc_8EB5EFBA.html" guid="_geA_AEJoEdq3aK0GjVqTbg">Tool Mentor: 使用 Eclipse Process Framework 创建方法插件</a>。关于如何填充插件的信息，请参阅<a class="elementLinkWithType" href="./../../../rup/guidances/toolmentors/developing_method_content_rmc_53FEDE8.html" guid="_4Hw3gEJoEdq3aK0GjVqTbg">Tool Mentor: 使用 Eclipse Process Framework 开发方法内容</a>。
</p>
<h4>
定义特定于流程的配置并发布
</h4>
<p>
既然 Jill 已将特定于项目的资产封装入一个插件中，她就可以开发包含特定于项目的插件的 NUP 配置。
</p>
<p>
Jill 启动了 <a class="elementLink" href="./../../../rup/tools/rup_rational_method_composer_84A966EC.html" guid="_hAfB8COzEdq41POk0CQYwA">Eclipse Process Framework</a>（EPF）并选择“小型项目”配置作为起点。将“小型项目”配置复制到命名为“"ABC Project X”的新配置中。&nbsp;
</p>
<p>
Jill 打开了新的配置，然后选择和取消选择了某些方法包和插件，对期望的配置执行大致配置。例如，她取消选择了方法包“数据库设计”，因为团队不打算在此项目上进行任何数据建模，接着她选择上一部分创建的特定于项目的插件。
</p>
<p>
然后，Jill 使用“小型项目配置”中提供的交付流程作为起点，在她的方法插件中创建了新的交付流程。她对新的交付流程进行编辑，将一些任务添加到每个阶段并取消其他的任务。然后她发布结果。
</p>
<p>
关于如何使用 EPF 开发流程的信息，请参阅<a class="elementLinkWithType" href="./../../../rup/guidances/toolmentors/developing_processes_rmc_525982AF.html" guid="_A1_M4EJeEdqc6pVfdXQ8AQ">Tool Mentor: 使用 Eclipse Process Framework 开发流程</a>。关于如何使用 EPF 发布流程的信息，请参阅<a class="elementLinkWithType" href="./../../../rup/guidances/toolmentors/publishing_method_configuration_rmc_AE16A603.html" guid="_6KxnAEccEdqWhJpIxgco7Q">Tool Mentor: 使用 Eclipse Process Framework 发布方法配置</a>。
</p>
<h3>
    <a id="roles" name="roles">角色和生命周期</a>
</h3>
<p>
Project X 具有小型团队，因此每个人均负责多种 NUP 角色。Jill 在软件开发计划中描述了每个人的职责。例如，在 Project X 上，Jill 负责项目经理和流程工程师角色。</p>
<h3>
    <a id="review" name="review">评审</a>
</h3>
<p>
Jill 向团队和其他项目干系人提供了已配置的 NUP 和软件开发计划的草案，以供评审。团队开始遵循该流程。如果有了某些错误，就优化该流程。最终，项目取得了成功，并且团队有了调整得当的流程，可应用于未来项目。</p></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
